package com.firebird.app.kotlin.stock.trend.utils

import android.content.Context
import android.os.Environment
import java.io.File


/**
 * 网络图片的文件缓存对象
 * @author ljk
 * @date   2019年11月12日
 */
class FileCache(context: Context) {
    private var cacheDir: File? = null
    /**
     * 给定网络图片的URL查找磁盘中的图片文件
     * @param imgUrl
     * @return
     */
    fun getFile(imgUrl: String): File { //将url的hashCode作为缓存的文件名
        val fileName = imgUrl.hashCode().toString()
        return File(cacheDir, fileName)
    }

    /**
     * 清楚缓存的图片文件
     */
    fun clear() {
        val files = cacheDir!!.listFiles()
        if (files == null) {
            return
        } else {
            for (f in files) {
                f.delete()
            }
        }
    }

    init {
        //如果有SD卡则在SD卡中建一个LazyList的目录存放缓存的图片 没有SD卡就放在系统的缓存目录中
        cacheDir = if (Environment.getExternalStorageDirectory().equals( Environment.MEDIA_MOUNTED)) {
            File(Environment.getExternalStorageDirectory(), "ImageCache")
        } else {
            context.cacheDir
        }
        if (!cacheDir!!.exists()) {
            cacheDir!!.mkdirs()
        }
    }
}
